#include "../../xor.h"


using namespace XOR;


class KeyboardDemo : public DefaultKeyboardListener
{

public:

   /* 
  	* Constructor
 	*/
	KeyboardDemo()
	{
        Controller * ctrl = Controller::GetInstance();
        ctrl->defaultConfiguration();

    //    ctrl->getKeyboard()->addListener(this);

        ctrl->setModel(new String2D("Keyboard Test (press any key to test)"));

        ctrl->getViewer()->incrementTranslation(new Dimension3D(0,0,9));
        ctrl->getViewer()->setFocalPoint(new Dimension3D(0,0,0));
        
        ctrl->getModel()->addRenderable("white", new Cube(new Point3D(-.5,-.5,-.5), 1,  new Paint(Color::WHITE)));
        ctrl->getModel()->addRenderable("blue",  new Cube(new Point3D(0,0,5), 1,        new Paint(Color::BLUE)));
        ctrl->getModel()->addRenderable("green", new Cube(new Point3D(0,5,0), 1,        new Paint(Color::GREEN)));
        ctrl->getModel()->addRenderable("red",   new Cube(new Point3D(5,0,0), 1,        new Paint(Color::RED)));

        ctrl->run();
	}

	/* handlers (auto-generated by generate_key_handlers.sh */
    
    void KeyboardDemo::handleKey(KeyUpEvent * kue)
    {
        cout << "HandleKey(*kue) called" << endl;
    }

	void KeyboardDemo::handleKey_0() { cout << "handleKey_0()" << endl; }
	void KeyboardDemo::handleKey_1() { cout << "handleKey_1()" << endl; }
	void KeyboardDemo::handleKey_2() { cout << "handleKey_2()" << endl; }
	void KeyboardDemo::handleKey_3() { cout << "handleKey_3()" << endl; }
	void KeyboardDemo::handleKey_4() { cout << "handleKey_4()" << endl; }
	void KeyboardDemo::handleKey_5() { cout << "handleKey_5()" << endl; }
	void KeyboardDemo::handleKey_6() { cout << "handleKey_6()" << endl; }
	void KeyboardDemo::handleKey_7() { cout << "handleKey_7()" << endl; }
	void KeyboardDemo::handleKey_8() { cout << "handleKey_8()" << endl; }
	void KeyboardDemo::handleKey_9() { cout << "handleKey_9()" << endl; }
	void KeyboardDemo::handleKey_Keypad0() { cout << "handleKey_Keypad0()" << endl; }
	void KeyboardDemo::handleKey_Keypad1() { cout << "handleKey_Keypad1()" << endl; }
	void KeyboardDemo::handleKey_Keypad2() { cout << "handleKey_Keypad2()" << endl; }
	void KeyboardDemo::handleKey_Keypad3() { cout << "handleKey_Keypad3()" << endl; }
	void KeyboardDemo::handleKey_Keypad4() { cout << "handleKey_Keypad4()" << endl; }
	void KeyboardDemo::handleKey_Keypad5() { cout << "handleKey_Keypad5()" << endl; }
	void KeyboardDemo::handleKey_Keypad6() { cout << "handleKey_Keypad6()" << endl; }
	void KeyboardDemo::handleKey_Keypad7() { cout << "handleKey_Keypad7()" << endl; }
	void KeyboardDemo::handleKey_Keypad8() { cout << "handleKey_Keypad8()" << endl; }
	void KeyboardDemo::handleKey_Keypad9() { cout << "handleKey_Keypad9()" << endl; }
	void KeyboardDemo::handleKey_KeypadPeriod() { cout << "handleKey_KeypadPeriod()" << endl; }
	void KeyboardDemo::handleKey_KeypadDivide() { cout << "handleKey_KeypadDivide()" << endl; }
	void KeyboardDemo::handleKey_KeypadMultiply() { cout << "handleKey_KeypadMultiply()" << endl; }
	void KeyboardDemo::handleKey_KeypadMinus() { cout << "handleKey_KeypadMinus()" << endl; }
	void KeyboardDemo::handleKey_KeypadPlus() { cout << "handleKey_KeypadPlus()" << endl; }
	void KeyboardDemo::handleKey_KeypadEnter() { cout << "handleKey_KeypadEnter()" << endl; }
	void KeyboardDemo::handleKey_KeypadEqual() { cout << "handleKey_KeypadEqual()" << endl; }
	void KeyboardDemo::handleKey_A() { cout << "handleKey_A()" << endl; }
	void KeyboardDemo::handleKey_B() { cout << "handleKey_B()" << endl; }
	void KeyboardDemo::handleKey_C() { cout << "handleKey_C()" << endl; }
	void KeyboardDemo::handleKey_D() { cout << "handleKey_D()" << endl; }
	void KeyboardDemo::handleKey_E() { cout << "handleKey_E()" << endl; }
	void KeyboardDemo::handleKey_F() { cout << "handleKey_F()" << endl; }
	void KeyboardDemo::handleKey_G() { cout << "handleKey_G()" << endl; }
	void KeyboardDemo::handleKey_H() { cout << "handleKey_H()" << endl; }
	void KeyboardDemo::handleKey_I() { cout << "handleKey_I()" << endl; }
	void KeyboardDemo::handleKey_J() { cout << "handleKey_J()" << endl; }
	void KeyboardDemo::handleKey_K() { cout << "handleKey_K()" << endl; }
	void KeyboardDemo::handleKey_L() { cout << "handleKey_L()" << endl; }
	void KeyboardDemo::handleKey_M() { cout << "handleKey_M()" << endl; }
	void KeyboardDemo::handleKey_N() { cout << "handleKey_N()" << endl; }
	void KeyboardDemo::handleKey_O() { cout << "handleKey_O()" << endl; }
	void KeyboardDemo::handleKey_P() { cout << "handleKey_P()" << endl; }
	void KeyboardDemo::handleKey_Q() { cout << "handleKey_Q()" << endl; }
	void KeyboardDemo::handleKey_R() { cout << "handleKey_R()" << endl; }
	void KeyboardDemo::handleKey_S() { cout << "handleKey_S()" << endl; }
	void KeyboardDemo::handleKey_T() { cout << "handleKey_T()" << endl; }
	void KeyboardDemo::handleKey_U() { cout << "handleKey_U()" << endl; }
	void KeyboardDemo::handleKey_V() { cout << "handleKey_V()" << endl; }
	void KeyboardDemo::handleKey_W() { cout << "handleKey_W()" << endl; }
	void KeyboardDemo::handleKey_X() { cout << "handleKey_X()" << endl; }
	void KeyboardDemo::handleKey_Y() { cout << "handleKey_Y()" << endl; }
	void KeyboardDemo::handleKey_Z() { cout << "handleKey_Z()" << endl; }
	void KeyboardDemo::handleKey_a() { cout << "handleKey_a()" << endl; }
	void KeyboardDemo::handleKey_b() { cout << "handleKey_b()" << endl; }
	void KeyboardDemo::handleKey_c() { cout << "handleKey_c()" << endl; }
	void KeyboardDemo::handleKey_d() { cout << "handleKey_d()" << endl; }
	void KeyboardDemo::handleKey_e() { cout << "handleKey_e()" << endl; }
	void KeyboardDemo::handleKey_f() { cout << "handleKey_f()" << endl; }
	void KeyboardDemo::handleKey_g() { cout << "handleKey_g()" << endl; }
	void KeyboardDemo::handleKey_h() { cout << "handleKey_h()" << endl; }
	void KeyboardDemo::handleKey_i() { cout << "handleKey_i()" << endl; }
	void KeyboardDemo::handleKey_j() { cout << "handleKey_j()" << endl; }
	void KeyboardDemo::handleKey_k() { cout << "handleKey_k()" << endl; }
	void KeyboardDemo::handleKey_l() { cout << "handleKey_l()" << endl; }
	void KeyboardDemo::handleKey_m() { cout << "handleKey_m()" << endl; }
	void KeyboardDemo::handleKey_n() { cout << "handleKey_n()" << endl; }
	void KeyboardDemo::handleKey_o() { cout << "handleKey_o()" << endl; }
	void KeyboardDemo::handleKey_p() { cout << "handleKey_p()" << endl; }
	void KeyboardDemo::handleKey_q() { cout << "handleKey_q()" << endl; }
	void KeyboardDemo::handleKey_r() { cout << "handleKey_r()" << endl; }
	void KeyboardDemo::handleKey_s() { cout << "handleKey_s()" << endl; }
	void KeyboardDemo::handleKey_t() { cout << "handleKey_t()" << endl; }
	void KeyboardDemo::handleKey_u() { cout << "handleKey_u()" << endl; }
	void KeyboardDemo::handleKey_v() { cout << "handleKey_v()" << endl; }
	void KeyboardDemo::handleKey_w() { cout << "handleKey_w()" << endl; }
	void KeyboardDemo::handleKey_x() { cout << "handleKey_x()" << endl; }
	void KeyboardDemo::handleKey_y() { cout << "handleKey_y()" << endl; }
	void KeyboardDemo::handleKey_z() { cout << "handleKey_z()" << endl; }
	void KeyboardDemo::handleKey_F1() { cout << "handleKey_F1()" << endl; }
	void KeyboardDemo::handleKey_F2() { cout << "handleKey_F2()" << endl; }
	void KeyboardDemo::handleKey_F3() { cout << "handleKey_F3()" << endl; }
	void KeyboardDemo::handleKey_F4() { cout << "handleKey_F4()" << endl; }
	void KeyboardDemo::handleKey_F5() { cout << "handleKey_F5()" << endl; }
	void KeyboardDemo::handleKey_F6() { cout << "handleKey_F6()" << endl; }
	void KeyboardDemo::handleKey_F7() { cout << "handleKey_F7()" << endl; }
	void KeyboardDemo::handleKey_F8() { cout << "handleKey_F8()" << endl; }
	void KeyboardDemo::handleKey_F9() { cout << "handleKey_F9()" << endl; }
	void KeyboardDemo::handleKey_F10() { cout << "handleKey_F10()" << endl; }
	void KeyboardDemo::handleKey_F11() { cout << "handleKey_F11()" << endl; }
	void KeyboardDemo::handleKey_F12() { cout << "handleKey_F12()" << endl; }
	void KeyboardDemo::handleKey_Backspace() { cout << "handleKey_Backspace()" << endl; }
	void KeyboardDemo::handleKey_Tab() { cout << "handleKey_Tab()" << endl; }
	void KeyboardDemo::handleKey_Return() { cout << "handleKey_Return()" << endl; }
	void KeyboardDemo::handleKey_Escape() { cout << "handleKey_Escape()" << endl; }
	void KeyboardDemo::handleKey_Space() { cout << "handleKey_Space()" << endl; }
	void KeyboardDemo::handleKey_Exclaim() { cout << "handleKey_Exclaim()" << endl; }
	void KeyboardDemo::handleKey_DblQuote() { cout << "handleKey_DblQuote()" << endl; }
	void KeyboardDemo::handleKey_Hash() { cout << "handleKey_Hash()" << endl; }
	void KeyboardDemo::handleKey_Dollar() { cout << "handleKey_Dollar()" << endl; }
	void KeyboardDemo::handleKey_Ampersand() { cout << "handleKey_Ampersand()" << endl; }
	void KeyboardDemo::handleKey_SnglQuote() { cout << "handleKey_SnglQuote()" << endl; }
	void KeyboardDemo::handleKey_LParen() { cout << "handleKey_LParen()" << endl; }
	void KeyboardDemo::handleKey_RParen() { cout << "handleKey_RParen()" << endl; }
	void KeyboardDemo::handleKey_Asterisk() { cout << "handleKey_Asterisk()" << endl; }
	void KeyboardDemo::handleKey_Plus() { cout << "handleKey_Plus()" << endl; }
	void KeyboardDemo::handleKey_Comma() { cout << "handleKey_Comma()" << endl; }
	void KeyboardDemo::handleKey_Minus() { cout << "handleKey_Minus()" << endl; }
	void KeyboardDemo::handleKey_Period() { cout << "handleKey_Period()" << endl; }
	void KeyboardDemo::handleKey_FwdSlash() { cout << "handleKey_FwdSlash()" << endl; }
	void KeyboardDemo::handleKey_Colon() { cout << "handleKey_Colon()" << endl; }
	void KeyboardDemo::handleKey_Semicolon() { cout << "handleKey_Semicolon()" << endl; }
	void KeyboardDemo::handleKey_Less() { cout << "handleKey_Less()" << endl; }
	void KeyboardDemo::handleKey_Equal() { cout << "handleKey_Equal()" << endl; }
	void KeyboardDemo::handleKey_Greater() { cout << "handleKey_Greater()" << endl; }
	void KeyboardDemo::handleKey_Question() { cout << "handleKey_Question()" << endl; }
	void KeyboardDemo::handleKey_At() { cout << "handleKey_At()" << endl; }
	void KeyboardDemo::handleKey_LBracket() { cout << "handleKey_LBracket()" << endl; }
	void KeyboardDemo::handleKey_RBracket() { cout << "handleKey_RBracket()" << endl; }
	void KeyboardDemo::handleKey_BackSlash() { cout << "handleKey_BackSlash()" << endl; }
	void KeyboardDemo::handleKey_Caret() { cout << "handleKey_Caret()" << endl; }
	void KeyboardDemo::handleKey_Underscore() { cout << "handleKey_Underscore()" << endl; }
	void KeyboardDemo::handleKey_BackQuote() { cout << "handleKey_BackQuote()" << endl; }
	void KeyboardDemo::handleKey_Delete() { cout << "handleKey_Delete()" << endl; }
	void KeyboardDemo::handleKey_Up() { cout << "handleKey_Up()" << endl; }
	void KeyboardDemo::handleKey_Down() { cout << "handleKey_Down()" << endl; }
	void KeyboardDemo::handleKey_Left() { cout << "handleKey_Left()" << endl; }
	void KeyboardDemo::handleKey_Right() { cout << "handleKey_Right()" << endl; }
	void KeyboardDemo::handleKey_Insert() { cout << "handleKey_Insert()" << endl; }
	void KeyboardDemo::handleKey_Home() { cout << "handleKey_Home()" << endl; }
	void KeyboardDemo::handleKey_End() { cout << "handleKey_End()" << endl; }
	void KeyboardDemo::handleKey_PageUp() { cout << "handleKey_PageUp()" << endl; }
	void KeyboardDemo::handleKey_PageDown() { cout << "handleKey_PageDown()" << endl; }
	void KeyboardDemo::handleKey_NumLock() { cout << "handleKey_NumLock()" << endl; }
	void KeyboardDemo::handleKey_CapsLock() { cout << "handleKey_CapsLock()" << endl; }
	void KeyboardDemo::handleKey_ScrlLock() { cout << "handleKey_ScrlLock()" << endl; }
	void KeyboardDemo::handleKey_PrtScrn() { cout << "handleKey_PrtScrn()" << endl; }
	void KeyboardDemo::handleKey_SysReq() { cout << "handleKey_SysReq()" << endl; }
	void KeyboardDemo::handleKey_Break() { cout << "handleKey_Break()" << endl; }


};


/**
 *  Tester Main
 */
int main(int argc, char **argv)
{
	KeyboardDemo * demo = new KeyboardDemo(); 
    return 0;
}

